// Package types define the structure of request parameters and return results in this package
package types

import (
	"time"

	"github.com/zhufuyi/sponge/pkg/mysql/query"
)

var _ time.Time

// CreateTkShopRequest create params
// todo fill in the binding rules https://github.com/go-playground/validator
type CreateTkShopRequest struct {
	Code                      string `json:"code" binding:""`   // 店铺ID
	Name                      string `json:"name" binding:""`   // 店铺名称
	Status                    int    `json:"status" binding:""` // 状态 1正常 2关闭 3boss操作关闭，用户无法操作店铺状态
	Logo                      string `json:"logo" binding:""`
	CompanyID                 uint   `json:"company_id" binding:""`                   // 公司
	CompanyName               string `json:"company_name" binding:""`                 // 公司名称
	ShopLicense               string `json:"shop_license" binding:""`                 // 店铺资质
	IndustryLicense           string `json:"industry_license" binding:""`             // 行业资质
	PayMode                   int    `json:"pay_mode" binding:""`                     // 支付方式 1微信，2盛付通
	BusinessNumber            string `json:"business_number" binding:""`              // 商户号
	OnSale                    int    `json:"on_sale" binding:""`                      // 上架数量
	Visit                     int    `json:"visit" binding:""`                        // 浏览数量
	ComplaintRatio            string `json:"complaint_ratio" binding:""`              // 投诉率
	HandleComplaintRatio      string `json:"handle_complaint_ratio" binding:""`       // 投诉处理及时率
	Ratio                     string `json:"ratio" binding:""`                        // 自然流量分佣比例
	AdRatio                   string `json:"ad_ratio" binding:""`                     // 广告流量分佣比例
	CallbackRatio             string `json:"callback_ratio" binding:""`               // 回传流量分佣比例
	Creator                   string `json:"creator" binding:""`                      // 创建人
	CreatorID                 uint   `json:"creator_id" binding:""`                   // 创建人id
	TotalPayAmount            uint64 `json:"total_pay_amount" binding:""`             // 总支付金额
	TotalRefundAmount         uint64 `json:"total_refund_amount" binding:""`          // 总退款金额
	TotalWaitSettlementAmount uint64 `json:"total_wait_settlement_amount" binding:""` // 总待结算金额
	TotalEndSettlementAmount  uint64 `json:"total_end_settlement_amount" binding:""`  // 总已结算金额
	TotalDepositAmount        uint64 `json:"total_deposit_amount" binding:""`         // 总押金
	ProductCatalogID          int    `json:"product_catalog_id" binding:""`           // 商品库id
}

// UpdateTkShopByIDRequest update params
type UpdateTkShopByIDRequest struct {
	ID uint64 `json:"id" binding:""` // uint64 id

	Code                      string `json:"code" binding:""`   // 店铺ID
	Name                      string `json:"name" binding:""`   // 店铺名称
	Status                    int    `json:"status" binding:""` // 状态 1正常 2关闭 3boss操作关闭，用户无法操作店铺状态
	Logo                      string `json:"logo" binding:""`
	CompanyID                 uint   `json:"company_id" binding:""`                   // 公司
	CompanyName               string `json:"company_name" binding:""`                 // 公司名称
	ShopLicense               string `json:"shop_license" binding:""`                 // 店铺资质
	IndustryLicense           string `json:"industry_license" binding:""`             // 行业资质
	PayMode                   int    `json:"pay_mode" binding:""`                     // 支付方式 1微信，2盛付通
	BusinessNumber            string `json:"business_number" binding:""`              // 商户号
	OnSale                    int    `json:"on_sale" binding:""`                      // 上架数量
	Visit                     int    `json:"visit" binding:""`                        // 浏览数量
	ComplaintRatio            string `json:"complaint_ratio" binding:""`              // 投诉率
	HandleComplaintRatio      string `json:"handle_complaint_ratio" binding:""`       // 投诉处理及时率
	Ratio                     string `json:"ratio" binding:""`                        // 自然流量分佣比例
	AdRatio                   string `json:"ad_ratio" binding:""`                     // 广告流量分佣比例
	CallbackRatio             string `json:"callback_ratio" binding:""`               // 回传流量分佣比例
	Creator                   string `json:"creator" binding:""`                      // 创建人
	CreatorID                 uint   `json:"creator_id" binding:""`                   // 创建人id
	TotalPayAmount            uint64 `json:"total_pay_amount" binding:""`             // 总支付金额
	TotalRefundAmount         uint64 `json:"total_refund_amount" binding:""`          // 总退款金额
	TotalWaitSettlementAmount uint64 `json:"total_wait_settlement_amount" binding:""` // 总待结算金额
	TotalEndSettlementAmount  uint64 `json:"total_end_settlement_amount" binding:""`  // 总已结算金额
	TotalDepositAmount        uint64 `json:"total_deposit_amount" binding:""`         // 总押金
	ProductCatalogID          int    `json:"product_catalog_id" binding:""`           // 商品库id
}

// GetTkShopByIDRespond respond detail
type GetTkShopByIDRespond struct {
	ID string `json:"id"` // convert to string id

	Code                      string `json:"code"`   // 店铺ID
	Name                      string `json:"name"`   // 店铺名称
	Status                    int    `json:"status"` // 状态 1正常 2关闭 3boss操作关闭，用户无法操作店铺状态
	Logo                      string `json:"logo"`
	CreatedAt                 int    `json:"created_at"`
	UpdatedAt                 int    `json:"updated_at"`
	CompanyID                 uint   `json:"company_id"`                   // 公司
	CompanyName               string `json:"company_name"`                 // 公司名称
	ShopLicense               string `json:"shop_license"`                 // 店铺资质
	IndustryLicense           string `json:"industry_license"`             // 行业资质
	PayMode                   int    `json:"pay_mode"`                     // 支付方式 1微信，2盛付通
	BusinessNumber            string `json:"business_number"`              // 商户号
	OnSale                    int    `json:"on_sale"`                      // 上架数量
	Visit                     int    `json:"visit"`                        // 浏览数量
	ComplaintRatio            string `json:"complaint_ratio"`              // 投诉率
	HandleComplaintRatio      string `json:"handle_complaint_ratio"`       // 投诉处理及时率
	Ratio                     string `json:"ratio"`                        // 自然流量分佣比例
	AdRatio                   string `json:"ad_ratio"`                     // 广告流量分佣比例
	CallbackRatio             string `json:"callback_ratio"`               // 回传流量分佣比例
	Creator                   string `json:"creator"`                      // 创建人
	CreatorID                 uint   `json:"creator_id"`                   // 创建人id
	TotalPayAmount            uint64 `json:"total_pay_amount"`             // 总支付金额
	TotalRefundAmount         uint64 `json:"total_refund_amount"`          // 总退款金额
	TotalWaitSettlementAmount uint64 `json:"total_wait_settlement_amount"` // 总待结算金额
	TotalEndSettlementAmount  uint64 `json:"total_end_settlement_amount"`  // 总已结算金额
	TotalDepositAmount        uint64 `json:"total_deposit_amount"`         // 总押金
	ProductCatalogID          int    `json:"product_catalog_id"`           // 商品库id
}

// DeleteTkShopsByIDsRequest request form ids
type DeleteTkShopsByIDsRequest struct {
	IDs []uint64 `json:"ids" binding:"min=1"` // id list
}

// GetTkShopsByIDsRequest request form ids
type GetTkShopsByIDsRequest struct {
	IDs []uint64 `json:"ids" binding:"min=1"` // id list
}

// GetTkShopsRequest request form params
type GetTkShopsRequest struct {
	query.Params // query parameters
}

// ListTkShopsRespond list data
type ListTkShopsRespond []struct {
	GetTkShopByIDRespond
}
